#ifndef __MCDRAWCIRCLECOMMAND_H_
#define __MCDRAWCIRCLECOMMAND_H_

#include "MCCommandManager.h"
#include <MCCommand.h>
#include <MCCircle2D.h>
#include <MCCircleVisual.h>
#include <MCCircleParametricWindow.h>

enum MCDrawCircleStage
{
    SetCenter = 0,
    SetRadius,
    C_ParametricWindow
};

class MCDrawCircleCommand : public MCCommand
{
public:

    MCDrawCircleCommand(MCCommandManager *owner);
    ~MCDrawCircleCommand();

    void onMouseDown(IMouseArgs &args) override;
    void onMouseUp(IMouseArgs &args) override;
    void onMouseMove(IMouseArgs &args) override;

    void terminate() override;

private:

    MCCircleParametricWindow *_parametricWindow;
    MCDrawCircleStage _currentStage;
    MCCircleVisual *_circleVisual;
    MCCircle2D _circle;
    MCPoint2D _settedCenter;
    double _settedRadius;

};

#endif
